OpenSSL হলো একটি ওপেন-সোর্স লাইব্রেরি, যা SSL এবং TLS প্রোটোকল ব্যবহার করে নিরাপদ যোগাযোগ স্থাপন করতে সহায়ক। এটি সার্ভার এবং ক্লায়েন্ট উভয়ের জন্য Secure Socket Communication সেটআপ করার জন্য ব্যবহৃত হয়। OpenSSL ব্যবহার করে ক্লায়েন্ট-সার্ভার সংযোগ স্থাপন, ডেটা এনক্রিপ্ট করা, এবং সার্টিফিকেট ব্যবস্থাপনা করা যায়। নিচে OpenSSL ব্যবহার করে Secure Socket Communication সেটআপ এবং পরিচালনার ধাপগুলো নিয়ে আলোচনা করা হলো।
OpenSSL সাধারণত Unix/Linux সিস্টেমে প্রি-ইনস্টলড থাকে। যদি এটি ইনস্টল না থাকে, তবে নিম্নলিখিত কমান্ডটি ব্যবহার করে এটি ইনস্টল করা যায়:
sudo apt-get update
sudo apt-get install openssl
Secure Socket Communication সেটআপ করতে OpenSSL ব্যবহার করে প্রথমে সার্টিফিকেট এবং প্রাইভেট কী তৈরি করতে হবে। এরপর সার্ভার এবং ক্লায়েন্ট উভয়ের জন্য সিকিউর সিস্টেম কনফিগার করা যাবে।
প্রাইভেট কী তৈরি করা:
openssl genpkey -algorithm RSA -out server.key
সার্টিফিকেট সাইনিং রিকোয়েস্ট (CSR) তৈরি করা:
openssl req -new -key server.key -out server.csr
সার্টিফিকেট তৈরি করা (Self-Signed Certificate):
server.key
হলো প্রাইভেট কী, এবং server.crt
হলো তৈরি করা সার্টিফিকেট।Python-এ OpenSSL ব্যবহার করে একটি Secure Socket Server তৈরি করতে নিচের কোডটি ব্যবহার করা যেতে পারে:
import socket
import ssl
# সার্ভার ঠিকানা এবং পোর্ট
server_address = ('localhost', 8443)
# SSL Context তৈরি করা
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain(certfile="server.crt", keyfile="server.key")
# TCP Socket তৈরি করা
bind_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
bind_socket.bind(server_address)
bind_socket.listen(5)
print("Secure Server is listening on port 8443...")
while True:
# ক্লায়েন্ট সংযোগ গ্রহণ করা
client_socket, client_address = bind_socket.accept()
print(f"Connection accepted from {client_address}")
# Secure Socket তৈরি করা
secure_socket = context.wrap_socket(client_socket, server_side=True)
try:
# ক্লায়েন্ট থেকে ডেটা গ্রহণ করা
data = secure_socket.recv(1024)
print(f"Received: {data.decode()}")
# ক্লায়েন্টকে মেসেজ পাঠানো
secure_socket.sendall(b"Hello, Secure Client!")
except Exception as e:
print(f"Error: {e}")
finally:
secure_socket.close()
wrap_socket()
ব্যবহার করে TCP Socket কে একটি Secure Socket-এ পরিবর্তিত করা হয়েছে।Python-এ OpenSSL ব্যবহার করে একটি Secure Socket Client তৈরি করতে নিচের কোডটি ব্যবহার করা যেতে পারে:
import socket
import ssl
# সার্ভার ঠিকানা এবং পোর্ট
server_address = ('localhost', 8443)
# SSL Context তৈরি করা
context = ssl.create_default_context()
# TCP সংযোগ তৈরি করা
client_socket = socket.create_connection(server_address)
# Secure Socket তৈরি করা
secure_socket = context.wrap_socket(client_socket, server_hostname='localhost')
try:
# সার্ভারে ডেটা পাঠানো
secure_socket.sendall(b"Hello, Secure Server!")
# সার্ভার থেকে ডেটা গ্রহণ করা
data = secure_socket.recv(1024)
print(f"Received: {data.decode()}")
finally:
secure_socket.close()
wrap_socket()
ব্যবহার করে TCP Socket কে SSL/TLS মোডে পরিবর্তিত করা হয়েছে, এবং সার্ভারের সনদ যাচাই করা হয়েছে।সার্ভার চালু করা:
python secure_server.py
ক্লায়েন্ট চালু করা:
python secure_client.py
ডেটা এনক্রিপশন এবং গোপনীয়তা:
সার্টিফিকেট যাচাই এবং প্রমাণীকরণ:
ডেটার ইন্টেগ্রিটি রক্ষা:
common.read_more